<script>
import ebus from '@/components/libs/ebus.js'
import ds from '@/api/service/db-service.js'
import storeSer from '@/api/service/store-service.js'
import userSer from '@/pages/common/service/user.js'
export default {
	async onLaunch() {
		// 国际化，设置当前语言
		if (this.vuex_locale){
			this.$i18n.locale = this.vuex_locale;
			this.$u.api.lang({lang: this.vuex_locale});
		}
		// 设置底部导航栏角标
		// uni.setTabBarBadge({
		//   index: 0,
		//   text: '3'
		// });
		// uni.removeTabBarBadge({
		//   index: 0
		// });
		// 401响应
		ebus.$on('on401', ({ res, req, vm }) => {
			let url = req.url
			if (/login/.test(url)) {
				return true
			}
			// 离线模式
			if (!vm.isOnline()) {
				setTimeout(() => {
					vm.$u.toast('离线模式无法请求在线服务')
				}, 300)
				return true
			}
			// 避免重复弹框
			if (this.isShowConfirm) {
				return true
			}
			this.isShowConfirm = true
			uni.showModal({
				title: '提示',
				content: '登录状态已过期，您可以继续留在该页面，或者重新登录?',
				confirmText: '重新登录',
				cancelText: '继续停留',
				success: (res) => {
					if (res.confirm) {
						// 登出
						userSer.logout({ vm: this })
					} else {
						// 升级页面导航处理
						navigateOnUpdate({ vm })
					}
				},
				complete () {
					this.isShowConfirm = false
				}
			})
		})
    // 初始化本地数据库
    await this.initDatabase()
    // 跳转页面
    this.initHome()
    // 加载完成
    this.$isResolve()
	},
	methods: {
		// 初始化本地数据库
		async initDatabase () {
			let user = this.getCurrentUser() || {}
			let params = {
			  userId: user.userId
			}
			// 存储的系统配置
			let sc = await storeSer.getInitFlag()
			/* 未初始化 */
			if (!sc) {
				// 初始化本地数据库
				await ds.initLocalDatabase(this)
				storeSer.setInitFlag(1)
			}
			/* 已初始化 */
			else {
				// 加载更新sql
				await ds.initUpdateDatabase()
			}
		},
		// 首页跳转
		initHome () {
			// 登录信息
			let user = this.getCurrentUser()
			let mode = this.$store?.state?.vuex_mode
			// 未登录过或退出过
			if (!user || !/online|offline/i.test(mode)){
				uni.reLaunch({
					url: '/pages/sys/login/index'
				})
				return true
			}
			// 跳转至工作台
			// uni.reLaunch({
			// 	url: '/pages/sys/workbench/index?source=welcome'
			// })
		}
	}
}
</script>
<style>
	@import url("~@/static/iconfont/iconfont.css");
</style>
<style lang="scss">
@import "uview-ui/index.scss";
@import "pages/common/uni.scss";
@import '@daelui/dogui/dist/css/standard.css';
.file-picker__box .icon-add:before {
  display: none;
}
</style>